// 统一响应格式工具
class ResponseHelper {
  // 成功响应
  static success(res, data = null, message = '操作成功', statusCode = 200) {
    return res.status(statusCode).json({
      success: true,
      message,
      data,
      timestamp: new Date().toISOString()
    });
  }

  // 错误响应
  static error(res, message = '操作失败', statusCode = 400, errors = null) {
    return res.status(statusCode).json({
      success: false,
      message,
      errors,
      timestamp: new Date().toISOString()
    });
  }

  // 分页响应
  static paginated(res, data, total, page, pageSize, message = '获取成功') {
    return res.json({
      success: true,
      message,
      data: {
        items: data,
        total,
        page: parseInt(page),
        pageSize: parseInt(pageSize),
        totalPages: Math.ceil(total / pageSize)
      },
      timestamp: new Date().toISOString()
    });
  }

  // 未授权响应
  static unauthorized(res, message = '未授权访问') {
    return this.error(res, message, 401);
  }

  // 禁止访问响应
  static forbidden(res, message = '禁止访问') {
    return this.error(res, message, 403);
  }

  // 资源未找到响应
  static notFound(res, message = '资源未找到') {
    return this.error(res, message, 404);
  }

  // 服务器内部错误响应
  static serverError(res, message = '服务器内部错误') {
    return this.error(res, message, 500);
  }

  // 参数验证错误响应
  static validationError(res, errors, message = '参数验证失败') {
    return this.error(res, message, 400, errors);
  }
}

module.exports = ResponseHelper;
